package binary_tree.LeetCode;

/**
 * 根据二叉树创建字符串
 */
public class Num606 {
    /**
     * 给出二叉树的根节点，就可以根据要求转换为字符串
     * @param root
     * @return
     */
    private  StringBuilder sb=new StringBuilder();
    public String tree2str(TreeNode root) {
       if (root==null){
           return "";
       }
       //先处理根节点
        sb.append(root.val);
        //处理左子树
        if (root.left!=null){
            sb.append("(");
            //左子树的处理交给子函数
            tree2str(root.left);
            sb.append(")");
        }else{
            //此时左子树为空，右子树不为空，就加上一个（）
            if (root.right!=null){
                sb.append("()");
            }
        }
        //处理右子树
        if (root.right!=null){
            sb.append("(");
            //右子树的处理交给子函数
            tree2str(root.right);
            sb.append(")");
        }
        return sb.toString();
    }
}
